import java.util.LinkedList;

/**
 * @ClassName LinkedListDemo01
 * @Description LinkedList集合
 * @Author Li
 * @Date 2022/8/5 9:03
 * @ModifyDate 2022/8/5 9:03
 * @Version 1.0
 */
public class LinkedListDemo01 {
    public static void main(String[] args) {
        // 创建集合（要使用特有方法，不能使用多态）
        LinkedList<String> list = new LinkedList<>();
        list.add("item1");
        list.add("item2");
        list.add("item3");
        list.add("item4");
        list.add("item5");
        System.out.println(list);
        /*
         public void addFirst(E e)：将指定元素插入此列表的开头
         public void addLast(E e)：将指定元素添加到此列表的结尾
        */
        list.addFirst("firstE");
        list.addLast("lastE");
        System.out.println(list);
        System.out.println("=========================");
        /*
         public E getFirst()：返回此列表的第一个元素
         public E getLast()：返回此列表的最后一个元素
        */
        String first = list.getFirst();
        System.out.println("第一个元素是：" + first);
        String last = list.getLast();
        System.out.println("最后一个元素是：" + last);
        System.out.println("=========================");
        /*
         public E removeFirst()：移除并返回此列表的第一个元素
         public E removeLast()：移除并返回此列表的最后一个元素
        */
        String removeFirst = list.removeFirst();
        String removeLast = list.removeLast();
        System.out.println("删除的第一个元素是：" + removeFirst);
        System.out.println("删除的最后一个元素是：" + removeLast);
        System.out.println("删除后的集合为：" + list);
        System.out.println("=========================");
        /*
         public E pop()：从此列表所表示的堆栈弹出一个元素
         public void push(E e)：将元素推入此列表所表示的堆栈
        */
        list.pop(); // 相当于removeFirst()
        System.out.println(list);
        list.push("pushE"); // 相当于addFirst()
        System.out.println(list);
        System.out.println("=========================");
        // 清空集合
        list.clear();
        if (!list.isEmpty()) {
            // 如果不添加是否为空的判断，会报错：java.util.NoSuchElementException
            System.out.println(list.getFirst());
        } else {
            System.out.println("集合为空！");
        }
    }
}
